package com.smart.sms.service;

import com.smart.sms.common.BaseMessage;

import java.util.function.Function;

/**
 * 消息业务消费抽象接口，抽象每个消费者(Listener)调用的业务消费方法
 * @param <T>
 */
public interface BaseMessageService<T extends BaseMessage> {

    /**
     * 消费消息
     *
     * @param message         消息
     * @param consumeFunction 消费方法
     */
    default boolean consume(T message, Function<T, Boolean> consumeFunction) {
        return consumeFunction.apply(message);
    }
}